<head>
    <meta charset="UTF-8">
<title>算法训练 Pyramids</title>
<link rel="stylesheet" href="../css/main.css">
</head>
 <p>【问题描述】</p>
<div>如果你有足够的石块，那么建一座金字塔绝不算难事。举个例子，在一块平地上，我们铺一个10*10的矩形，然后在10*10的矩形上面铺一个9*9的，然后8*8的&hellip;&hellip;以此类推，直到顶上1*1。这个金字塔有10层，我们称这类金字塔为&ldquo;高金字塔&rdquo;。</div>
<div>如果你认为这样的金字塔太陡了，那么我们有办法让他看上去坡度平缓一些。比如，在10*10的矩形上，我们铺一个8*8的矩形，然后是6*6的&hellip;&hellip;这样的金字塔只有5层了，大约为底座边长的一半。我们称之为&ldquo;矮金字塔&rdquo;。</div>
<div>很久以前，一位法老从父亲那儿继承了一大堆用于搭建金字塔的石块。他决定用这些石块搭建一座金字塔&mdash;&mdash;每个石块都必须用上。建筑师告诉他，这样的要求不一定能实现。例如，如果你有10块石头，那么可以搭一个底座为3的矮金字塔；如果有5块石头，那么就搭一个底座为2的高金字塔。如果你有7块石头呢？不幸的是，确实找不出一种搭金字塔的方案了。</div>
<div>思考再三后，法老决定放低要求&mdash;&mdash;搭不止一座金字塔。但是仍然要满足如下几个条件：</div>
<div>1.所有石块都必须用上；</div>
<div>2.金字塔数要尽可能少；</div>
<div>3.所有金字塔两两不同；</div>
<div>4.金字塔至少包含两层，即底座为1的金字塔和底座为2的矮金字塔是不允许的；</div>
<div>5.满足以上4点的基础上，最大的金字塔要尽可能大（大定义为用的石块数多）；</div>
<div>6.满足以上5点的基础上，次大的金字塔要尽可能大；</div>
<div>7.以此类推。。</div>
<div>你能求出最好的搭金字塔方案么？或者告诉法老这是做不到的。</div>
<div>&nbsp;</div>
<p>【输入格式】<br />
输入仅包含一行，一个正整数N（N&lt;=10^6），表示你拥有的石块数量。</p>
<p>&nbsp;</p>
<p><br />
【输出格式】</p>
<p>&nbsp;</p>
<p>输出需要给出具体的方案，或者告诉法老不可能办到。具体的，如果不能办到，输出impossible；否则输出每个金字塔如何搭建，格式是&ldquo;底座长度+H/L&rdquo;，H表示这是一座高金字塔，L表示矮金字塔。多座金字塔按从大到小排序输出，如果大小一样，先输出&ldquo;高金字塔&rdquo;。两座金字塔间用恰好一个空格隔开。</p>
<p>&nbsp;</p>
<p><br />
【样例输入】<br />
29<br />
【样例输出】<br />
3H 3L 2H<br />
【数据规模和约定】<br />
对于20%的数据，N&lt;=20</p>
<p>&nbsp;</p>
<p>对于50%的数据，N&lt;=1000</p>
<p>&nbsp;</p>
<p>对于100%的数据，N&lt;=1000000</p>